﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MarkControle.Models;
using MarkControle.ActionFilters;
using System.Web.Security;


namespace MarkControle.Controllers
{
    public class LoginController : Controller
    {
        
        // GET: /Login/
      
        public ActionResult ViewPage()
        {
            return View("Login");
        }
        [HttpPost]
        public ActionResult Verifica(Login login)
        {


            if (!login.valido())
            {
               ModelState.AddModelError("Username","Login e/ou senha invalidos!");
               ModelState.AddModelError("Password", "Login e/ou senha invalidos!");
                
            }
            if (login.bloqueado())
                ModelState.AddModelError("Bloq", "Login bloqueado, entre em contatto com seu supervisor para o desbloqueio!");



            if (ModelState.IsValid)
            {



                FormsAuthentication.SetAuthCookie(login.Username, false);
                Session["login"] = login;
                Session.Timeout = 200;
              
                return RedirectToAction("Load", "Home");
            }
            else
                return View("Login");

                                                        
          
        }


        public ActionResult Deletefun()
        {
            return View("Deletefunci");
        }
        
        
        
        public ActionResult Deletfunci(FormCollection form)
        {

            string nome;
            string user;
            nome = form["Nome"];
            user = form["user"];
            Funcionario f = new Funcionario();
            f.Deletebanco(nome, user);

            return View("Deletefunci");
        }
       
        
        [HttpPost]
        public ActionResult Cadastro(Funcionario funci)
        {
            Login log= new Login();
            if (funci.Senmax1!=funci.master)
            {
                ModelState.AddModelError("Senmax1","Senha incorreta!");
                
            }
            if (String.Compare(funci.Username, log.Procura(funci.Username).Username) == 0)
            {
                ModelState.AddModelError("Username", "Esse Username já esta cadastrado no sistema.");
               
            }
            if (String.Compare(funci.Nome, log.Procura(funci.Nome).Nome) == 0)
            {
                ModelState.AddModelError("Nome", "Esse Nome já esta cadastrado no sistema.");
                
            
            }
            if (! ModelState.IsValid)
                return View("Register");

            Funcionario novo = new Funcionario(funci.Nome, funci.Username, funci.Senha, funci.Cpf,0,funci.Acesso,funci.Area);
            novo.Adicionabanco();


            Session["funcionario"]=novo;

            return View("Login");
        }
       
        
        public ActionResult registro()
        {
            return View("Register");
        }

        public ActionResult logoff()
        {
            Session.RemoveAll();
            return View("Login");
        }
    }
}
